
package com.ktgj.common.spring.entity.iata.iata_ordercreaterq;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>PaymentInfoType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="PaymentInfoType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="Amount" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}AmountType"/&gt;
 *         &lt;element name="ContactInfoRefID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="Desc" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}DescType" minOccurs="0"/&gt;
 *         &lt;element name="Merchant" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}MerchantType" minOccurs="0"/&gt;
 *         &lt;element name="OfferAssociation" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}OfferAssociationType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="Payer" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}PayerType" minOccurs="0"/&gt;
 *         &lt;element name="PaymentInfoID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="PaymentMethod" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}PaymentMethodType"/&gt;
 *         &lt;element name="PaymentInfoRefID" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="PaymentTrx" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}PaymentTrxType" minOccurs="0"/&gt;
 *         &lt;element name="Promotion" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCreateRQ}PromotionType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="TypeCode" type="{http://www.w3.org/2001/XMLSchema}string"/&gt;
 *         &lt;element name="VerificationInd" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PaymentInfoType", propOrder = {
    "amount",
    "contactInfoRefID",
    "desc",
    "merchant",
    "offerAssociation",
    "payer",
    "paymentInfoID",
    "paymentMethod",
    "paymentInfoRefID",
    "paymentTrx",
    "promotion",
    "typeCode",
    "verificationInd"
})
public class PaymentInfoType {

    @XmlElement(name = "Amount", required = true)
    protected AmountType amount;
    @XmlElement(name = "ContactInfoRefID")
    protected String contactInfoRefID;
    @XmlElement(name = "Desc")
    protected DescType desc;
    @XmlElement(name = "Merchant")
    protected MerchantType merchant;
    @XmlElement(name = "OfferAssociation")
    protected List<OfferAssociationType> offerAssociation;
    @XmlElement(name = "Payer")
    protected PayerType payer;
    @XmlElement(name = "PaymentInfoID")
    protected String paymentInfoID;
    @XmlElement(name = "PaymentMethod", required = true)
    protected PaymentMethodType paymentMethod;
    @XmlElement(name = "PaymentInfoRefID")
    protected String paymentInfoRefID;
    @XmlElement(name = "PaymentTrx")
    protected PaymentTrxType paymentTrx;
    @XmlElement(name = "Promotion")
    protected List<PromotionType> promotion;
    @XmlElement(name = "TypeCode", required = true)
    protected String typeCode;
    @XmlElement(name = "VerificationInd")
    protected Boolean verificationInd;

    /**
     * 获取amount属性的值。
     * 
     * @return
     *     possible object is
     *     {@link AmountType }
     *     
     */
    public AmountType getAmount() {
        return amount;
    }

    /**
     * 设置amount属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link AmountType }
     *     
     */
    public void setAmount(AmountType value) {
        this.amount = value;
    }

    /**
     * 获取contactInfoRefID属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getContactInfoRefID() {
        return contactInfoRefID;
    }

    /**
     * 设置contactInfoRefID属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setContactInfoRefID(String value) {
        this.contactInfoRefID = value;
    }

    /**
     * 获取desc属性的值。
     * 
     * @return
     *     possible object is
     *     {@link DescType }
     *     
     */
    public DescType getDesc() {
        return desc;
    }

    /**
     * 设置desc属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link DescType }
     *     
     */
    public void setDesc(DescType value) {
        this.desc = value;
    }

    /**
     * 获取merchant属性的值。
     * 
     * @return
     *     possible object is
     *     {@link MerchantType }
     *     
     */
    public MerchantType getMerchant() {
        return merchant;
    }

    /**
     * 设置merchant属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link MerchantType }
     *     
     */
    public void setMerchant(MerchantType value) {
        this.merchant = value;
    }

    /**
     * Gets the value of the offerAssociation property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the offerAssociation property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getOfferAssociation().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link OfferAssociationType }
     * 
     * 
     */
    public List<OfferAssociationType> getOfferAssociation() {
        if (offerAssociation == null) {
            offerAssociation = new ArrayList<OfferAssociationType>();
        }
        return this.offerAssociation;
    }

    /**
     * 获取payer属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PayerType }
     *     
     */
    public PayerType getPayer() {
        return payer;
    }

    /**
     * 设置payer属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PayerType }
     *     
     */
    public void setPayer(PayerType value) {
        this.payer = value;
    }

    /**
     * 获取paymentInfoID属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPaymentInfoID() {
        return paymentInfoID;
    }

    /**
     * 设置paymentInfoID属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPaymentInfoID(String value) {
        this.paymentInfoID = value;
    }

    /**
     * 获取paymentMethod属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PaymentMethodType }
     *     
     */
    public PaymentMethodType getPaymentMethod() {
        return paymentMethod;
    }

    /**
     * 设置paymentMethod属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PaymentMethodType }
     *     
     */
    public void setPaymentMethod(PaymentMethodType value) {
        this.paymentMethod = value;
    }

    /**
     * 获取paymentInfoRefID属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPaymentInfoRefID() {
        return paymentInfoRefID;
    }

    /**
     * 设置paymentInfoRefID属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPaymentInfoRefID(String value) {
        this.paymentInfoRefID = value;
    }

    /**
     * 获取paymentTrx属性的值。
     * 
     * @return
     *     possible object is
     *     {@link PaymentTrxType }
     *     
     */
    public PaymentTrxType getPaymentTrx() {
        return paymentTrx;
    }

    /**
     * 设置paymentTrx属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link PaymentTrxType }
     *     
     */
    public void setPaymentTrx(PaymentTrxType value) {
        this.paymentTrx = value;
    }

    /**
     * Gets the value of the promotion property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the promotion property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPromotion().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PromotionType }
     * 
     * 
     */
    public List<PromotionType> getPromotion() {
        if (promotion == null) {
            promotion = new ArrayList<PromotionType>();
        }
        return this.promotion;
    }

    /**
     * 获取typeCode属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getTypeCode() {
        return typeCode;
    }

    /**
     * 设置typeCode属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setTypeCode(String value) {
        this.typeCode = value;
    }

    /**
     * 获取verificationInd属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isVerificationInd() {
        return verificationInd;
    }

    /**
     * 设置verificationInd属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setVerificationInd(Boolean value) {
        this.verificationInd = value;
    }

}
